package com.sugar.subscribe.course.module.business.enums;

import com.sugar.subscribe.course.framework.common.exception.ErrorCode;

/**
 * @author Ysugar
 */
public interface ErrorCodeConstants {

    // ========== 公共相关 1_008_000_000 ==========
    ErrorCode SERVICE_BUSY = new ErrorCode(1_008_000_000, "服务繁忙，请稍后重试");
    ErrorCode NO_PERMISSION = new ErrorCode(1_008_000_001, "您无权限操作");
    ErrorCode BUFFERED_IMAGE_IS_NULL = new ErrorCode(1_008_000_002, "BufferedImage Is Null");
    ErrorCode IMPORT_EXCEL_ERROR = new ErrorCode(1_008_000_003, "从第 {} 行开始往下数据导入失败");

    // ========== 微信小程序 1_008_888_010 ==========
    ErrorCode WX_AUTH_NOT_RESP = new ErrorCode(1_008_888_000, "请求微信认证无响应");
    ErrorCode WX_GET_OPENID_ERROR = new ErrorCode(1_008_888_001, "微信认证失败，请稍后重试");
    ErrorCode WX_GET_OPENID_CODE_IS_NULL = new ErrorCode(1_008_888_002, "微信登录凭证不能为空");
    ErrorCode WX_MOBILE_CODE_IS_NULL = new ErrorCode(1_008_888_003, "手机号凭证为空");
    ErrorCode WX_MOBILE_AUTH_ERROR = new ErrorCode(1_008_888_004, "手机号凭证换取失败");

    // ========== 用户 1_008_001_000 ==========
    ErrorCode BIZ_USER_NOT_EXISTS = new ErrorCode(1_008_001_000, "用户不存在");
    ErrorCode BIZ_USER_REGISTER_ERROR = new ErrorCode(1_008_001_001, "用户注册失败");
    ErrorCode USER_ACCOUNT_FORBIDDEN = new ErrorCode(1_008_001_002, "账号异常，请联系客服解决");
    ErrorCode BIZ_USER_IS_BIND_OTHER_WX = new ErrorCode(1_008_001_003, "该手机号已被其它微信用户绑定");
    ErrorCode BIZ_USER_IS_BIND_OTHER_MOBILE = new ErrorCode(1_008_001_004, "该微信已绑定其它手机号");
    ErrorCode BIZ_USER_OPEN_ID_IS_EMPTY = new ErrorCode(1_008_001_005, "用户微信身份标识为空，无法发起支付");
    ErrorCode BIZ_USER_OPEN_ID_IS_EMPTY_TRANSFER = new ErrorCode(1_008_001_005, "用户微信身份标识为空，无法发起提现");

    // ========== 教练信息 1_008_002_000 ==========
    ErrorCode COACH_NOT_EXISTS = new ErrorCode(1_008_002_000, "教练信息不存在");
    ErrorCode COACH_APPLY_NOT_EXISTS = new ErrorCode(1_008_002_001, "您还未申请入驻教练");
    ErrorCode COACH_DISABLED = new ErrorCode(1_008_002_002, "账户已被禁用，请联系管理员");
    ErrorCode COACH_REST = new ErrorCode(1_008_002_003, "教练休息中，不能接单");
    // ========== 教练钱包 1_008_002_010 ==========
    ErrorCode COACH_WALLET_NOT_EXISTS = new ErrorCode(1_008_002_010, "教练钱包不存在");
    ErrorCode COACH_WALLET_BALANCE_UPDATE_ERROR = new ErrorCode(1_008_002_011, "用户余额修改失败");
    ErrorCode COACH_WALLET_BALANCE_INSUFFICIENT = new ErrorCode(1_008_002_012, "余额不足");
    // ========== 教练授课场地 1_008_002_020 ==========
    ErrorCode COACH_VENUE_NOT_EXISTS = new ErrorCode(1_008_002_020, "教练授课场地不存在");
    // ========== 教练服务 1_008_002_030 ==========
    ErrorCode COACH_SERVICE_NOT_EXISTS = new ErrorCode(1_008_002_030, "教练服务不存在");
    // ========== 教练课程方案 1_008_002_040 ==========
    ErrorCode COACH_PLAN_NOT_EXISTS = new ErrorCode(1_008_002_040, "教练课程方案不存在");
    ErrorCode COACH_PLAN_ID_NOT_NULL = new ErrorCode(1_008_002_041, "教练课程方案不能为空");
    // ========== 教练证书 1_008_002_050 ==========
    ErrorCode COACH_CERTIFICATE_NOT_EXISTS = new ErrorCode(1_008_002_050, "教练证书不存在");
    // ========== 教练视频介绍 1_008_002_060 ==========
    ErrorCode COACH_VIDEO_NOT_EXISTS = new ErrorCode(1_008_002_100, "教练视频介绍不存在");

    // ========== 评论 1_008_003_000 ==========
    ErrorCode COACH_COMMENT_NOT_EXISTS = new ErrorCode(1_008_003_000, "评论不存在");

    // ========== 订单 1_008_004_000 ==========
    ErrorCode ORDER_NOT_EXISTS = new ErrorCode(1_008_004_000, "订单不存在");
    ErrorCode ORDER_ATTEND_CLASS_DATE_NOT_SECOND_UPDATE = new ErrorCode(1_008_004_001, "当前订单已经修改过一次上课时间，无法再次修改");
    ErrorCode ORDER_NOT_UPDATE_ATTEND_CLASS_DATE = new ErrorCode(1_008_004_002, "当前订单无法修改上课时间");
    ErrorCode ORDER_ATTEND_CLASS_DATE_LESS_THAN_THREE = new ErrorCode(1_008_004_003, "距离上课时间不到3天，无法修改");
    ErrorCode ORDER_ATTEND_CLASS_DATE_NOT_LESS_TODAY = new ErrorCode(1_008_004_004, "上课时间不能选择今天以前");
    ErrorCode ORDER_ATTEND_CLASS_DONE_NO_CANCEL = new ErrorCode(1_008_004_005, "当前订单已上过课，不能取消");
    ErrorCode ORDER_IS_CANCELLED = new ErrorCode(1_008_004_006, "当前订单已经取消");
    ErrorCode ORDER_NOT_DONE = new ErrorCode(1_008_004_007, "订单非待确认状态，不能完成订单");
    ErrorCode ORDER_NOT_ATTEND_CLASS = new ErrorCode(1_008_004_008, "订单非待上课状态，不能进行上课");
    ErrorCode ORDER_NOT_TAKE_ORDER = new ErrorCode(1_008_004_008, "订单非待接单状态，不能进行接单");
    ErrorCode ORDER_ATTEND_CLASS_DONE_NOT_UPDATE_TIME = new ErrorCode(1_008_004_009, "您已上课，无法修改上课时间");
    ErrorCode ORDER_NOT_PAY_NOT_ATTEND_CLASS = new ErrorCode(1_008_004_010, "订单未支付，无法进行上课");
    ErrorCode ORDER_IS_REFUND_DONE = new ErrorCode(1_008_004_011, "订单已退款，无法进行上课");
    ErrorCode ORDER_COACH_CAN_NOT_CANCEL = new ErrorCode(1_008_004_012, "订单非待接单或待上课状态，不能取消");
    ErrorCode ORDER_NOT_PAY_NOT_TAKE = new ErrorCode(1_008_004_013, "订单未支付，无法接单");
    ErrorCode ORDER_IS_REFUND_NOT_TAKE = new ErrorCode(1_008_004_014, "订单已退款，无法接单");
    ErrorCode ORDER_IS_PAY_SUCCESS = new ErrorCode(1_008_004_015, "订单已支付，无需重新支付");
    ErrorCode ORDER_IS_PAYED_NOT_UPDATE_AMOUNT = new ErrorCode(1_008_004_016, "订单已支付，无法修改订单金额");
    ErrorCode ORDER_IS_DONE_CAN_NOT_CANCEL = new ErrorCode(1_008_004_017, "订单已完成，无法取消");

    ErrorCode ORDER_UPDATE_PAID_STATUS_NOT_UNPAID = new ErrorCode(1_008_004_100, "订单更新支付状态失败，订单不是【未支付】状态");
    ErrorCode ORDER_UPDATE_PAID_FAIL_PAY_ORDER_ID_ERROR = new ErrorCode(1_008_004_101, "订单更新支付状态失败，支付单编号不匹配");
    ErrorCode ORDER_UPDATE_PAID_FAIL_PAY_ORDER_STATUS_NOT_SUCCESS = new ErrorCode(1_008_004_102, "订单更新支付状态失败，支付单状态不是【支付成功】状态");
    ErrorCode ORDER_UPDATE_PAID_FAIL_PAY_PRICE_NOT_MATCH = new ErrorCode(1_008_004_103, "订单更新支付状态失败，支付单金额不匹配");
    ErrorCode ORDER_REFUND_FAIL_REFUND_NOT_FOUND = new ErrorCode(1_008_004_104, "发起退款失败，退款订单不存在");
    ErrorCode ORDER_REFUND_FAIL_REFUND_STATUS_ERROR = new ErrorCode(1_008_004_104, "发起退款失败，退款订单不是退款中状态");
    ErrorCode ORDER_REFUND_FAIL_REFUND_NOT_SUCCESS = new ErrorCode(1_008_004_105, "发起退款失败，退款订单未退款成功");
    ErrorCode ORDER_REFUND_FAIL_REFUND_ORDER_ID_ERROR = new ErrorCode(1_008_004_106, "发起退款失败，退款单编号不匹配");
    ErrorCode ORDER_REFUND_FAIL_REFUND_PRICE_NOT_MATCH = new ErrorCode(1_008_004_107, "发起退款失败，退款单金额不匹配");

    // ========== 提现记录 1_008_005_000 ==========
    ErrorCode WITHDRAW_RECORD_NOT_EXISTS = new ErrorCode(1_008_005_000, "提现记录不存在");
    ErrorCode WITHDRAW_RECORD_REFUSE_CAUSE_NOT_EMPTY = new ErrorCode(1_008_005_001, "拒绝原因不能为空");

    ErrorCode BROKERAGE_WITHDRAW_UPDATE_STATUS_FAIL_PAY_TRANSFER_ID_ERROR = new ErrorCode(1_008_005_100, "提现单更新转账状态失败，转账单不匹配");
    ErrorCode BROKERAGE_WITHDRAW_UPDATE_STATUS_FAIL_PAY_TRANSFER_STATUS_NOT_SUCCESS_OR_CLOSED = new ErrorCode(1_008_005_101, "提现单更新转账状态失败，转账单状态不是成功或关闭状态");
    ErrorCode BROKERAGE_WITHDRAW_UPDATE_STATUS_FAIL_PAY_PRICE_NOT_MATCH = new ErrorCode(1_008_005_102, "提现单更新转账状态失败，转账单金额不匹配");
    ErrorCode BROKERAGE_WITHDRAW_UPDATE_STATUS_FAIL_PAY_MERCHANT_EXISTS = new ErrorCode(1_008_005_103, "提现单更新转账状态失败，转账单的商户订单不匹配");

    // ========== 服务分类 1_008_096_000 ==========
    ErrorCode SERVICE_CLASS_NOT_EXISTS = new ErrorCode(1_008_096_000, "服务分类不存在");
    ErrorCode SERVICE_CLASS_NOT_SELECT_FIRST_CLASS = new ErrorCode(1_008_096_001, "不能选择服务一级分类");
    ErrorCode SERVICE_CLASS_NOT_MATCH = new ErrorCode(1_008_096_002, "服务类目错误");

    // ========== 场地 1_008_097_000 ==========
    ErrorCode VENUE_NOT_EXISTS = new ErrorCode(1_008_097_000, "场地不存在");

    // ========== 城市 1_008_098_000 ==========
    ErrorCode CITY_NOT_EXISTS = new ErrorCode(1_008_098_000, "城市不存在");

    // ========== 参数配置 1_008_099_000 ==========
    ErrorCode BIZ_CONFIG_NOT_EXISTS = new ErrorCode(1_008_099_000, "参数配置不存在");
}
